package com.wg.core.thread.scheduler;

import com.wg.core.lang.IDisposable;

/**
 * @author 少爷123
 */
public interface IScheduler {
    /**
     * 定时任务
     *
     * @param task       回调方法
     * @param firstInMs  首次执行时间（毫秒）
     * @return 返回该任务的对象，可用于销毁定时任务
     */
    IDisposable schedule(Runnable task, int firstInMs);

    /**
     * 定时任务
     *
     * @param task        回调方法
     * @param firstInMs   首次执行时间（毫秒）
     * @param regularInMs 间隔时间（毫秒）
     * @return 返回该任务的对象，可用于销毁定时任务
     */
    IDisposable scheduleOnInterval(Runnable task, int firstInMs, int regularInMs);
}
